package com.shop.cereshop.commons.domain.im.tx.req.push;

import com.google.gson.annotations.SerializedName;
import lombok.Data;

@Data
public class PushInfo {
    /**
     * 发送方账号，支持 UserID 或 RegistrationID。
     */
    @SerializedName("From_Account")
    private String From_Account;

    /**
     * 接收方账号列表，支持 UserID 或 RegistrationID。 ["user1","user2"], // 数组大小范围在[1,500]之间
     */
    @SerializedName("To_Account")
    private String[] To_Account;

    /**
     * 32位无符号整数随机数，取值范围0 - 4294967295
     * 后台用于同一秒内的消息去重，请确保是随机数。
     */
    @SerializedName("MsgRandom")
    private Long MsgRandom;
    @SerializedName("OfflinePushInfo")
    private OfflinePushInfo OfflinePushInfo;
    @SerializedName("Condition")
    private Condition Condition;


    /**
     * 管理员进行全员推送：
     */
    @Data
    public static class OfflinePushInfo {
        /**
         * 0表示进行离线推送，1表示不进行离线推送
         */
        @SerializedName("PushFlag")
        private Integer PushFlag;
        /**
         * 标题
         */
        @SerializedName("Title")
        private String Title;
        /**
         * 描述
         */
        @SerializedName("Desc")
        private String Desc;

        @SerializedName("Ext")
        private String Ext;
    }

    @Data
    public static class Condition {
        @SerializedName("TagList")
        private String[] TagList;
    }
}
